package com.ktgj.common.core.enums;

/**
 * @author wyj
 * @create 2021-09-16 11:16
 */
public class EnumHelper {
    /**
     * 乘客证件类型
     */
    public enum PsgerIDType{
        居民身份证(1), //居民身份证
        军官证(2), //军官证
        学生证(3), //学生证（十六周岁以下）
        护照(4), //（包括电子护照）
        民航局规定的其他有效乘机身份证件(5), //民航局规定的其他有效乘机身份证件
        港澳通行证(6), //港澳通行证
        户口簿(7), //户口簿（十六周岁以下）
        出生医学证明(8), //出生医学证明（十六周岁以下）
        港澳台居民居住证(9), //港澳居民居住证
        大陆居民来往台湾通行证(10), //大陆居民来往台湾通行证
        文职干部证(11), //文职干部证
        义务兵证(12), //义务兵证
        士官证(13), //士官证
        文职人员证(14), //文职人员证
        职工证(15), //职工证
        武警警官证(16), //武警警官证
        武警士兵证(17), //武警士兵证
        海员证(18), //海员证
        港澳居民来往内地通行证(19), //港澳居民来往内地通行证
        台湾居民来往大陆通行证(20), //台湾居民来往大陆通行证
        外交部签发的驻华外交人员证(21), //外交部签发的驻华外交人员证
        外国人永久居留证(22), //外国人永久居留证
        户口所在地公安机关出具的身份证明(23), //户口所在地公安机关出具的身份证明（十六周岁以下）
        ;
        PsgerIDType(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 行程类型
     */
    public enum TripType{
        全部(0), //全部
        单程(1), //单程
        往返(2); //往返
        TripType(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 第三方接口名称
     */
    public enum RequestType{
        Spring(7), //春秋
        易购(8), //易购
        易宝出票(9), //易宝出票
        LinkStar(14), //IBE 领达
        官网产品(15), //官网产品
        Qunar(16),//去哪儿
        DR(17), //瑞丽
        G5(18), //华夏
        HangBanGuanJia(19); //航班管家
        RequestType(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 产品类型
     */
    public enum ProductType{
        让利产品(1), //让利产品
        特价产品(2);  //特价产品
        ProductType(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 政策类型
     */
    public enum PolicyType{
        全部(0), //全部
        普通政策(1), //普通政策
        特价政策(2), //特价政策
        特殊政策(3), //特殊政策
        直降政策(4);  //直降政策
        PolicyType(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 业务类型（默认值：1）1：正常订单 2：改签订单
     */
    public enum PayType{
        正常订单(1), //正常订单
        改签订单(2);  //改签订单
        PayType(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 第三方代扣平台 1：支付宝 2：财付通 3：汇付
     */
    public enum PayPlatformId{
        未获取(0), //未获取
        支付宝(1), //支付宝
        财付通(2), //财付通
        汇付(3), //汇付
        快钱(4);  //快钱
        PayPlatformId(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 支付状态
     */
    public enum OrderStatus{
        未识别(0), //未识别

        下单成功等待价格确认(100), //下单成功等待价格确认
        下单成功等待支付(101), //下单成功等待支付
        订单取消(102), //订单取消

        支付申请成功(200), //支付申请成功
        扣款成功(201), //扣款成功
        扣款失败(202), //扣款失败
        交易关闭(203), //交易关闭

        支付成功等待出票(300), //支付成功等待出票
        出票完成(301), //出票完成
        出票失败(302), //出票失败
        出票中(303), //出票中
        已使用(304), //已使用

        退票申请(400), //退票申请
        未出票申请退款(401), //未出票申请退款
        退票完成等待退款(402), //退票完成等待退款
        退款完成(403), //退款完成
        退票失败(404), //退票失败
        取消退票(405), //取消退票
        拒绝退票(406), //拒绝退票
        退票完成(407), //退票完成

        改期成功(501), //改期成功
        改期失败(502), //改期失败
        改期申请(503);  //改期申请
        OrderStatus(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 退票申请类型
     */
    public enum RefundType{
        自愿(1), //自愿
        其他非自愿(2), //其他非自愿

        航变(2001), //航变
        病退(2002), //病退
        备降(2003), //备降
        重购全退(2004), //重购全退
        航班取消(2006), //航班取消
        航班调整(2007); //航班调整
        RefundType(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 退票原因
     */
    public enum RefundCause{
        行程计划改变(1), //行程计划改变
        手误选错日期(2), //手误选错日期
        手误选错航班(3), //手误选错航班
        手误乘机人或联系人填写错误(4), //手误乘机人或联系人填写错误
        重复购买了相同的航班(5), //重复购买了相同的航班
        在其他地方发现了更便宜的价格(6), //在其他地方发现了更便宜的价格
        我不想飞了(7), //我不想飞了
        代理商原因(8), //代理商原因
        航班取消(9), //航班取消
        航班时刻发生变化不准备乘机(10), //航班时刻发生变化不准备乘机
        身体不适无法飞行(11), //身体不适无法飞行
        不可抗因素(12), //不可抗因素
        其他(13), //其他
        电话提交非自愿退票(14), //电话提交非自愿退票
        电话提交自愿退票(15), //电话提交自愿退票
        电话提交代理商原因(16),  //电话提交代理商原因
        航班延误(17);  //航班延误

        RefundCause(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 全价舱等级标识
     */
    public enum CabinLevel{
        头等舱(1), //头等舱
        公务舱(2), //公务舱
        经济舱(3), //经济舱
        高特F(4), //高特F
        高特C(5), //高特C
        超经(6), //超经
        特经(7), //特经
        豪华F(8), //豪华F
        特惠优选(30); //特惠优选
        CabinLevel(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 回调通知类型
     */
    public enum CallBackType{
        支付(1), //支付
        出票(2), //出票
        航变(3), //航变
        订单状态变更通知(4), //订单状态变更通知
        改期结果通知(5), //改期结果通知
        退票结果通知(6);  //退票结果通知
        CallBackType(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 接口返回错误信息
     */
    public enum ReturnCode{
        成功(1000), //成功
        接口返回参数为空(10001), //接口返回参数为空
        系统异常代码(10002), //系统异常代码
        API处理过程中系统错误(10003), //API处理过程中系统错误
        回调签名错误(10004), //回调签名错误
        请求接口签名错误(10005), //请求接口签名错误
        请求接口异常(10006), //请求接口异常
        请求参数为空(10007), //请求参数为空
        未找到对应业务渠道(10008), //未找到对应业务渠道
        解析返回信息异常(10009), //解析返回信息异常
        舱位已售完请重新查询(10010), //舱位已售完请重新查询
        请求参数解析错误(10011), //请求参数解析错误
        失败(10020), //失败
        余额不足(10021);  //余额不足
        ReturnCode(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 乘机人类型
     */
    public enum PassengerType{
        未识别(0), //未识别
        成人(1), //成人
        儿童(2), //儿童
        婴儿(3);  //婴儿
        PassengerType(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 票号状态
     */
    public enum TicketStatus{
        Undefind(0) , // (0未定义)
        Open(1), // (1打开)
        Exch(2), // (2交易)
        Close(3);  // (3关闭)
        TicketStatus(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

    /**
     * 订座位状态
     */
    public enum CheckBookCode{
        正在订位中(0), //正在订位中
        订位成功(1), //订位成功
        订位失败(2);  //订位失败
        CheckBookCode(int value) {
            this.value = value;
        }

        private int value;

        public int getValue() {
            return value;
        }
    }

}
